Electronic devices, such as mobile phones and personal digital assistants (PDA's), often contain firmware and/or software applications that are either provided by the manufacturers of the electronic devices, by telecommunication carriers, or by third parties. These firmware and software applications often contain bugs. New versions of firmware and software are periodically released to fix the bugs and/or to introduce new features.
Generating update packages in an efficient mode when at least a portion of the update information to be updated is compressed and/or encrypted may be challenging. Updating code (e.g., firmware or software components) in electronic devices when the code to be updated is compressed may also be challenging.
Update programs, code, or functions employed to update the firmware and/or software components in electronic devices may also need to be changed, modified, and/or updated. However, portions or blocks of the information being updated may not fit into the memory available in the electronic device during an update. Changes to firmware and/or software components may need to be performed in a fault tolerant mode, however a fault tolerant update may be difficult to implement.
Electronic devices may employ non-volatile memory to store code and/or data. Sometimes, more than one type of memory device may be employed. Updating code and/or data distributed across multiple memory devices and memory device-types may be difficult, especially, if the memory devices are produced by different manufacturers.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of ordinary skill in the art through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.